/**
 * 题目:
 * 封装一个工具函数输入一个promiseA返回一个promiseB如果超过1s没返回则抛出异常如果正常则输出正确的值。
*/

/**
 * @param  {Object} prom 传入的promise
 * @param  {Number} timeout 传入超时时间
 * @return {Object} 返回新的promise
*/
function timeoutPromise(prom, timeout) {
  return Promise.race([
    prom, // 没超过1s返回
    new Promise((_, reject) => setTimeout(() => reject('error'), timeout)) // 超过1s返回
  ])
}

// // 测试
// const p = new Promise((resolve, reject) => {
//   setTimeout(() => resolve('sucess'), 2000)
// })
// timeoutPromise(p, 3000).then(
//   (value) => console.log(value), // sucess
//   (reason) => console.log(reason)
// )
// timeoutPromise(p, 1000).then(
//   (value) => console.log(value),
//   (reason) => console.log(reason) // error
// )
